package com.uzai.console.service.main;

import com.uzai.console.dto.main.main.RechargeDto;
import com.uzai.console.dto.main.main.TakeBalDto;
import com.uzai.console.entity.DingExclusiveGroupConfig;
import com.uzai.console.vo.main.main.*;

/**
 * 首页接口类
 * @author liuqi
 * @date 2022年01月16日 17:14
 */
public interface MainService {

    /**
     * 查询账户余额
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param merId
     * @return null
     */
    BalanceVo findBalance(Long merId);

    /**
     * 查询机器人总数
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param merId
     * @return null
     */
    DeviceCountVo findDeviceCount(Long merId);

    /**
     * 查询预估利润
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param merId
     * @return null
     */
    ProfitVo findProfit(Long merId);

    /**
     * 查询新增用户
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param merId
     * @return null
     */
    UserAddVo findUserAdd(Long merId);

    /**
     * 查询会员提现金额
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param merId
     * @return null
     */
    UserTakeBalVo findUserTakeBal(Long merId);

    /**
     * 查询授权到期数
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param merId
     * @return null
     */
    TokenVo findTokenExpired(Long merId);

    /**
     * 查询功能模块到期
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param merId
     * @return null
     */
    ProductExpiredVo findProductExpired(Long merId);

    /**
     * 查询机器人即将到期
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param merId
     * @return null
     */
    DeviceExpiredVo findDeviceExpired(Long merId);

    /**
     * 查询好友请求数
     * @author liuqi
     * @date 2021/8/25 11:38
     * @param merId
     * @return null
     */
    FriendRequestVo findFrindRequestCount(Long merId);

    /**
     * 账户充值
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param rechargeDto
     * @return null
     */
    RechargeVo recharge(RechargeDto rechargeDto);

    /**
     * 账户提现
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param takeBalDto
     * @return null
     */
    void takeBal(TakeBalDto takeBalDto);

    DingExclusiveGroupConfig queryDingDingExclusiveGroupQrCode(Long merId);

    boolean checkJoinGroup(Long merId);

    ProfitVo findProfitV2(Long merId);
}
